package org.wlw.user;

/**
 * 管理用户的类
 * 在这个类里面实现增删改查
 */
public class UserManager {
    User[] users;
    int index;

    public UserManager(int num) {
        //最多可以添加10个用户
        users = new User[num];
        index = 0;
    }

    //在最后添加用户对象
    public void add(User user) {
        //判断用户是否满了!
        if(index>=users.length) {
            System.out.println("用户已经满了!不能注册");
            return;
        }
        //用户名存在也不能添加
        if(load(user.getUsername())!=null) {
            //说明用户存在了
            System.out.println("添加的用户已经存在!不能添加");
            return;
        }
        //完成添加
        users[index] = user;
        index++;
        System.out.println("添加用户成功!");
    }

    public void update(User user) {
        //1、根据用户名得到数组中的用户对象
        User tu = this.load(user.getUsername());
        if(tu==null) {
            System.out.println("修改的用户不存在！");
            return;
        }
//        tu = user;
        tu.setAge(user.getAge());
        tu.setGender(user.getGender());
        tu.setNickname(user.getNickname());
        tu.setPassword(user.getPassword());
    }

    public void list() {
        System.out.println("----------------------------------------------------------------------");
        for(int i=0;i<index;i++) {
            System.out.println(users[i]);
        }
        System.out.println("----------------------------------------------------------------------");
    }

    private int loadByPos(String username) {
//        if(username.equals("脏话")) {
//            return -1;
//        }
        for(int i=0;i<index;i++) {
            User tu = users[i];
            if(username.equals(tu.getUsername())) {
                return i;
            }
        }
        return -1;
    }

    public User login(String username,String password) {
        //1、根据用户来找用户
        User u = this.load(username);
        if(u==null) {
            System.out.println("用户名不存在!");
            return null;
        }
        //2、检测用户名密码是否正确
        if(!password.equals(u.getPassword())) {
            System.out.println("密码不正确!");
            return null;
        }
        return u;
    }

    public void delete(String username) {
        //1、找到用户所在的位置
        int pos = this.loadByPos(username);
        if(pos<0) {
            System.out.println("删除的用户不存在！");
            return;
        }
        //2、移动位置
        for(int i=pos;i<index-1;i++) {
            users[i] = users[i+1];
        }
        //3、删除
        index--;
    }

    public User load(String username) {
        int n = loadByPos(username);
        if(n>=0) {
            return users[n];
        }
        return null;
//        for(int i=0;i<index;i++) {
//            User tu = users[i];
//            //找到用户
//            if(username.equals(tu.getUsername())) {
//                return tu;
//            }
//        }
//        //循环没有返回，说明没有找到
//        return null;
    }
}
